package com.blank.web.service;

import com.blank.web.bean.ClassBean;
import com.blank.web.bean.Page;
import com.blank.web.dao.ClassDao;
import com.blank.web.factory.ClassDaoFactory;

import java.util.List;

public class ClassService {
    //合成复用原则
    private ClassDao classDao;

    public ClassService(){
       this.classDao = ClassDaoFactory.getClassDao();
    }

    /**
     * 自定义成员方法实现显示所有班级的信息
     */
    public List<ClassBean> findAllClass(){
        return classDao.findAllClass();
    }

    /**
     * 自定义成员方法实现添加班级的功能
     */
    public void addClass(ClassBean classBean){
        classDao.addClass(classBean);
    }

    /**
     * 自定义成员方法实现根据cid来删除班级信息
     */
    public void DelClass(int cid){
        classDao.DelClass(cid);
    }

    /**
     * 自定义成员方法实现更新功能
     *
     */
    public void updateClass(ClassBean classBean){
        classDao.UpdateClass(classBean);
    }

    /**
     * 自定义成员方法实现根据cid来查找班级信息
     * @param cid
     */
    public ClassBean findClassByCid(int cid){
        return classDao.findClassByCid(cid);
    }

    /**
     * 自定义成员方法实现更新班级功能
     */
    public List<ClassBean> searchClassByName(String name){
        return classDao.searchClassByName(name);
    }

    public int judgeContainStudent(int cid){
        return classDao.judgeContainStudent(cid);
    }

    /**
     * 自定义成员方法实现分页功能
     *
     */
    public Page findClassByPage(int currentPage){
       int PageSize = ClassDao.PAGE_SIZE;
       Page<ClassBean> page = new Page<ClassBean>();
       page.setCurrentPage(currentPage);  //当前页码
       page.setPageSize(PageSize);  //每一页显示的条数
        List<ClassBean> list = classDao.findClassByPage(currentPage);

        page.setList(list);
        int count = classDao.findCount();
        page.setTotalSize(count);
        page.setTotalPage(count % PageSize == 0 ? count/PageSize : (count)/PageSize+1 );

        return page;
    }

}
